import redis
from redis.exceptions import ConnectionError

# 创建 Redis 客户端（无密码、默认端口）
redis_client = redis.Redis(
    host='localhost',  # 本地 Redis 服务
    port=6379,         # 默认端口
    db=0,              # 默认数据库 0
    decode_responses=True  # 自动解码二进制结果为字符串
)

def test_redis_connection():
    try:
        # 测试连接
        response = redis_client.ping()
        print("Redis 连接成功！" if response else "连接异常")
    except ConnectionError as e:
        print(f"Redis 连接失败: {e}")

def basic_operations():
    # 设置键值
    redis_client.set("user:1001:name", "Alice")
    # 获取键值
    name = redis_client.get("user:1001:name")
    print(f"用户名: {name}")

    # 设置过期时间（10秒）
    redis_client.setex("user:1001:token", 10, "abc123")
    print("Token 已设置，10秒后自动删除")

    # 哈希表操作
    redis_client.hset("user:1001:profile", mapping={
        "age": 30,
        "email": "alice@example.com"
    })
    profile = redis_client.hgetall("user:1001:profile")
    print(f"用户档案: {profile}")

if __name__ == "__main__":
    test_redis_connection()
    basic_operations()